package global

import (
	"log"

	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)

var URL_Mysql_local string = "totem:totem123@(127.0.0.1:3306)/bsn?charset=utf8mb4&readTimeout=15s&writeTimeout=10s&timeout=90s&collation=utf8mb4_unicode_ci"
var URL_Mysql_kas string = "totem:totem123@(43.198.110.216:3306)/bsn?charset=utf8mb4&readTimeout=15s&writeTimeout=10s&timeout=90s&collation=utf8mb4_unicode_ci"
var db *sqlx.DB

func GetDBUrl() string {
	switch DEFAULT_ENV {
	case DEV:
		return URL_Mysql_local
	case TEST:
		return URL_Mysql_local
	case UAT:
		return URL_Mysql_local
	case PROD:
		return URL_Mysql_local
	}
	return URL_Mysql_local
}

func DB() *sqlx.DB {
	if db == nil {
		//timeZone := url.QueryEscape("'Asia/Shanghai'")
		//parmas := fmt.Sprintf(URL_Mysql_var, timeZone)
		parmas := GetDBUrl()
		tmp, err := sqlx.Connect("mysql", parmas)
		if err != nil {
			log.Println("conn err", err)
			return nil
		}
		db = tmp
	}
	return db
}
